package com.training.mapper;

import com.training.entity.OfflinePractice;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface OfflinePracticeMapper {

    /**
     * 新增一个线下实践任务
     * @param practice 实践对象
     * @return 影响行数
     */
    int insertPractice(OfflinePractice practice);

    /**
     * 根据教师ID和关键词搜索其创建的线下实践
     * @param teacherId 教师ID
     * @param keyword 搜索关键词 (可匹配ID或标题)
     * @return 实践列表
     */
    List<OfflinePractice> findByTeacherIdAndKeyword(@Param("teacherId") Long teacherId, @Param("keyword") String keyword);

    /**
     * 根据实践ID查找实践详情
     * @param id 实践ID
     * @return 实践对象
     */
    OfflinePractice findById(@Param("id") Long id);

    /**
     * 更新实践的状态
     * @param id 实践ID
     * @param teacherId 教师ID (用于权限验证)
     * @param status 新的状态
     * @return 影响行数
     */
    int updateStatus(@Param("id") Long id, @Param("teacherId") Long teacherId, @Param("status") String status);

    // 在 OfflinePracticeMapper.java 文件的末尾添加以下方法
    List<OfflinePractice> findByCourseId(@Param("courseId") Long courseId);
}